// 导入 express
const express = require('express')

const fs = require('fs')
const path = require('path')

// 创建应用对象
const app = express()

// 声明中间件函数，第 3 个参数是 next() 函数
function recordMiddleware(req, res, next) {
  // 获取url 和 ip
  let { url, ip } = req

  // 信息放在文件access.log  resolve作用是组装根路径
  fs.appendFileSync(path.resolve(__dirname, './access.log'), `${url} ${ip} \r\n`)

  // 调用 next() 执行下一个中间件
  next()
}

// 使用中间件，全局使用，每个路由都会经过这个中间件
app.use(recordMiddleware)

// 浏览器测试以下路由

app.get('/home', (req, res) => {
  res.send('前台首页')
})

app.get('/admin', (req, res) => {
  res.send('后台首页')
})

app.all('/*', (req, res) => {
  res.send('<h1>404 Not Found</h1>')
})

// 监听端口
app.listen(3000, () => {
  console.log('app is running at port 3000')
})